﻿using System;

namespace SimpleServiceBus.Bus.Pipeline
{
    public interface IMessagePipelineComponent : IDisposable
    {
        IMessagePipeline Pipeline { get; set; }
        
        string Name { get; }

        bool Enabled { get; set; }
        bool EnabledFor(MessageEnvelope messageEnvelope);

        void ProcessMessage(MessageEnvelope messageEnvelope);
    }
}